home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / assembler / progasm1.lha / SORGENTI / LEZIONE2d.S < prev    next >
Text File  |  1995-04-19  |  2KB  |  67 lines

  1.  
  2. ; Lezione2d.s
  3.  
  4. Inizio:
  5.     lea    CANGURO,a0    ; in A0 mettiamo l'indirizzo di CANGURO
  6.     move.l    (a0),d0        ; in d0 mettiamo il valore .L che troviamo
  7.                 ; all'indirizzo che e' in a0, ovvero
  8.                 ; la prima longword contenuta in CANGURO
  9.     move.l    CANGURO,d1    ; in d1 mettiamo il contenuto della prima
  10.                 ; longword (4 bytes=4 indirizzi) di canguro
  11.     move.l    a0,d2        ; in d2 mettiamo il numero contenuto in a0,
  12.                 ; ossia l'indirizzo di CANGURO caricato
  13.                 ; prima col LEA CANGURO,a0
  14.     move.l    #CANGURO,d3    ; in d3 mettiamo l'indirizzo di CANGURO
  15.     rts
  16.  
  17. CANGURO:
  18.     dc.l    $123
  19.  
  20.     END
  21.  
  22. Con questo esempio si nota la differenza tra l'indirizzamento diretto, quello
  23. indiretto e quello assoluto: una volta assemblato , fate un D Inizio per
  24. controllare e dopo averlo eseguito col J si notera' il risultato nei
  25. registri: in d0 ed in d1 noterete $123, ossia il contenuto .L di CANGURO:
  26.  
  27.     lea    CANGURO,a0    ; in A0 mettiamo l'indirizzo di CANGURO
  28.     move.l    (a0),d0        ; in d0 mettiamo il valore contenuto
  29.                 ; nell'indirizzo che e' in a0, ovvero
  30.                 ; il valore .L contenuto in CANGURO
  31.                 ; (Con il MOVE.L si copia il byte contenuto
  32.                 ; nell'indirizzo in a0, nonche' i 3 seguenti,
  33.                 ; essendo una long lunga 4 bytes)
  34. E' equivalente a:
  35.  
  36.     move.l    CANGURO,d1    ; in d1 mettiamo il contenuto .L di canguro
  37.  
  38. Infatti in tutti e due i casi il contenuto .L di canguro va nel registro dati.
  39.  
  40. Invece in d2,d3 ed a0 si notera' l'indirizzo di CANGURO, infatti:
  41.  
  42.     lea    CANGURO,a0    ; in A0 mettiamo l'indirizzo di CANGURO
  43.     move.l    a0,d2        ; in d2 mettiamo il numero contenuto in a0,
  44.                 ; ossia l'indirizzo di CANGURO caricato col LEA
  45.  
  46. E' equivalente a:
  47.  
  48.     move.l    #CANGURO,d3    ; in d3 mettiamo l'indirizzo di CANGURO
  49.  
  50. Queste differenze di indirizzamento devono essere chiare, infatti una volta
  51. che si conoscono basta ricordarsi i comandi, i quali usano tutti lo stesso
  52. sistema di indirizzamento.
  53.  
  54. Esempi di indirizzamenti fin ora analizzati:
  55.  
  56. DIRETTO:
  57.     move.l    a0,a1
  58.  
  59. INDIRETTO:
  60.     clr.l    (a0)
  61.     move.l    (a3),(a4)
  62.  
  63. ASSOLUTO:
  64.     move.l    #LABEL,d0
  65.     MOVE.L    #10,d4
  66.  
  67.